#ifndef STOCKOPERATIONDIALOG_H
#define STOCKOPERATIONDIALOG_H

#include <QDialog>
#include <QComboBox>
#include <QSpinBox>
#include <QLabel>
#include <QPushButton>
#include <QFormLayout>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QMessageBox>
#include <QDialogButtonBox>
#include "databasemanager.h"

QT_BEGIN_NAMESPACE
namespace Ui {
class StockOperationDialog;
}
QT_END_NAMESPACE

class StockOperationDialog : public QDialog
{
    Q_OBJECT

public:
    explicit StockOperationDialog(QWidget *parent = nullptr);
    ~StockOperationDialog();
    
    // 设置操作类型（"入库" 或 "出库"）
    void setOperationType(const QString& type);
    // 设置预选物品
    void setSelectedItem(const ItemInfo& item);
    // 设置当前用户
    void setCurrentUser(const UserInfo& user);

private slots:
    // 确定按钮点击
    void onAccepted();
    // 取消按钮点击
    void onRejected();
    // 物品选择变化
    void onItemChanged(int index);

private:
    // 初始化UI
    void setupUI();
    // 加载物品到下拉框
    void loadItems();
    // 验证操作
    bool validateOperation();
    // 执行库存操作
    bool performStockOperation();
    // 更新当前库存显示
    void updateCurrentStock();
    
    Ui::StockOperationDialog *ui;
    QString m_operationType;
    UserInfo m_currentUser;
    QList<ItemInfo> m_items;
    ItemInfo m_selectedItem;
};

#endif // STOCKOPERATIONDIALOG_H